Hệ thống quản lý phòng khám trực tuyến bằng PHP
1 <!DOCTYPE html>
2 <?php if(!defined('PREPEND_PATH')) define('PREPEND_PATH', '../'); ?>
3 <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
4 <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
5 <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
6 <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
7 <head>
8 <meta charset="<?php echo datalist_db_encoding; ?>">
9 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
10 <meta name="description" content="">
11 <meta name="viewport" content="width=device-width, initial-scale=1.0">
12 <title><?php echo ucwords('online clinic management system') . ' | ' . $Translation['admin area']; ?><?php echo html_attr(isset($GLOBALS['page_title']) ? " | {$GLOBALS['page_title']}" : ''); ?></title>
13
14 <link id="browser_favicon" rel="shortcut icon" href="<?php echo PREPEND_PATH; ?>resources/table_icons/administrator.png">
15
16 <link rel="stylesheet" href="<?php echo PREPEND_PATH; ?>resources/initializr/css/bootstrap.css">
17 <!--[if gt IE 8]><!-->
18 <link rel="stylesheet" href="<?php echo PREPEND_PATH; ?>resources/initializr/css/bootstrap-theme.css">
19 <!--<![endif]-->
20 <link rel="stylesheet" href="<?php echo PREPEND_PATH; ?>dynamic.css.php">
21
22 <!--[if lt IE 9]>
23 <script src="<?php echo PREPEND_PATH; ?>resources/initializr/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
24 <![endif]-->
25 <script src="<?php echo PREPEND_PATH; ?>resources/jquery/js/jquery-1.11.2.min.js"></script>
26 <script>var $j = jQuery.noConflict(); var AppGini = AppGini || {};</script>
27 <script src="toolTips.js"></script>
28 <script src="<?php echo PREPEND_PATH; ?>resources/initializr/js/vendor/bootstrap.min.js"></script>
29 <script src="<?php echo PREPEND_PATH; ?>resources/lightbox/js/prototype.js"></script>
30 <script src="<?php echo PREPEND_PATH; ?>resources/lightbox/js/scriptaculous.js?load=effects"></script>
31 <script>
32
33 // VALIDATION FUNCTIONS FOR VARIOUS PAGES
34
35 function jsValidateEmail(address){
36 var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
37 if(reg.test(address) == false){
38 modal_window({ message: '<div class="alert alert-danger">'+"<?php echo $Translation['invalid email'];?>"+'</div>', title: "<?php echo $Translation['error'] ; ?>" });
39 return false;
40 }else{
41 return true;
42 }
43 }
44
45 function jsShowWait(){
46 return window.confirm("<?php echo $Translation['sending mails']; ?>");
47 }
48
49 function jsValidateAdminSettings(){
50 var p1=document.getElementById('adminPassword').value;
51 var p2=document.getElementById('confirmPassword').value;
52 if(p1=='' || p1==p2){
53 return jsValidateEmail(document.getElementById('senderEmail').value);
54 }else{
55 modal_window({ message: '<div class="alert alert-error">'+"<?php echo $Translation['password mismatch']; ?>"+'</div>', title: "<?php echo $Translation['error'] ; ?>" });
56 return false;
57 }
58 }
59
60 function jsConfirmTransfer(){
61 var confirmMessage;
62 var sg=document.getElementById('sourceGroupID').options[document.getElementById('sourceGroupID').selectedIndex].text;
63 var sm=document.getElementById('sourceMemberID').value;
64 var dg=document.getElementById('destinationGroupID').options[document.getElementById('destinationGroupID').selectedIndex].text;
65 if(document.getElementById('destinationMemberID')){
66 var dm=document.getElementById('destinationMemberID').value;
67 }
68 if(document.getElementById('dontMoveMembers')){
69 var dmm=document.getElementById('dontMoveMembers').checked;
70 }
71 if(document.getElementById('moveMembers')){
72 var mm=document.getElementById('moveMembers').checked;
73 }
74
75 //confirm('sg='+sg+'\n'+'sm='+sm+'\n'+'dg='+dg+'\n'+'dm='+dm+'\n'+'mm='+mm+'\n'+'dmm='+dmm+'\n');
76
77 if(dmm && !dm){
78 modal_window({ message: '<div>'+"<?php echo $Translation['complete step 4']; ?>"+'</div>', title: "<?php echo $Translation['info']; ?>", close: function(){ jQuery('#destinationMemberID').focus(); } });
79 return false;
80 }
81
82 if(mm && sm!='-1'){
83
84 confirmMessage = "<?php echo $Translation['sure move member']; ?>";
85 confirmMessage = confirmMessage.replace(/<MEMBER>/, sm).replace(/<OLDGROUP>/, sg).replace(/<NEWGROUP>/, dg);
86 return window.confirm(confirmMessage);
87
88 }
89 if((dmm || dm) && sm!='-1'){
90
91 confirmMessage = "<?php echo $Translation['sure move data of member']; ?>";
92 confirmMessage = confirmMessage.replace(/<OLDMEMBER>/, sm).replace(/<OLDGROUP>/, sg).replace(/<NEWMEMBER>/, dm).replace(/<NEWGROUP>/, dg);
93 return window.confirm(confirmMessage);
94 }
95
96 if(mm){
97
98 confirmMessage = "<?php echo $Translation['sure move all members']; ?>";
99 confirmMessage = confirmMessage.replace(/<OLDGROUP>/, sg).replace(/<NEWGROUP>/, dg);
100 return window.confirm(confirmMessage);
101 }
102
103 if(dmm){
104
105
106 confirmMessage = "<?php echo $Translation['sure move data of all members']; ?>";
107 confirmMessage = confirmMessage.replace(/<OLDGROUP>/, sg).replace(/<MEMBER>/, dm).replace(/<NEWGROUP>/, dg);
108 return window.confirm(confirmMessage);
109 }
110 }
111
112 function showDialog(dialogId){
113 $$('.dialog-box').invoke('addClassName', 'hidden-block');
114 $(dialogId).removeClassName('hidden-block');
115 return false
116 };
117
118 function hideDialogs(){
119 $$('.dialog-box').invoke('addClassName', 'hidden-block');
120 return false
121 };
122
123
124 $j(function(){
125 $j('input[type=submit],input[type=button]').each(function(){
126 var label = $j(this).val();
127 var onclick = $j(this).attr('onclick') || '';
128 var name = $j(this).attr('name') || '';
129 var type = $j(this).attr('type');
130
131 $j(this).replaceWith('<button class="btn btn-primary" type="' + type + '" onclick="' + onclick + '" name="' + name + '" value="' + label + '">' + label + '</button>');
132 });
133 });
134
135 </script>
136
137 <link rel="stylesheet" href="adminStyles.css">
138
139 <style>
140 .dialog-box{
141 background-color: white;
142 border: 1px solid silver;
143 border-radius: 10px 10px 10px 10px;
144 box-shadow: 0 3px 100px silver;
145 left: 30%;
146 padding: 10px;
147 position: absolute;
148 top: 20%;
149 width: 40%;
150 }
151 .hidden-block{
152 display: none;
153 }
154 </style>
155 </head>
156 <body>
157 <div class="container theme-bootstrap theme-3d">
158
159 <!-- top navbar -->
160 <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
161 <div class="navbar-header">
162 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
163 <span class="sr-only"><?php echo $Translation['toggle navigation'];?></span>
164 <span class="icon-bar"></span>
165 <span class="icon-bar"></span>
166 <span class="icon-bar"></span>
167 </button>
168 <a class="navbar-brand" href="pageHome.php"><span class="text-primary"><i class="glyphicon glyphicon-cog"></i> <?php echo $Translation['admin area']; ?></span></a>
169 </div>
170
171 <div class="collapse navbar-collapse navbar-ex1-collapse">
172 <ul class="nav navbar-nav">
173 <li class="dropdown">
174 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="glyphicon glyphicon-globe"></i> <?php echo $Translation['groups']; ?> <b class="caret"></b></a>
175 <ul class="dropdown-menu">
176 <li><a href="pageViewGroups.php"><?php echo $Translation['view groups']; ?></a></li>
177 <li><a href="pageEditGroup.php"><?php echo $Translation['add group'] ; ?></a></li>
178 <li class="divider"></li>
179 <li><a href="pageEditGroup.php?groupID=<?php echo sqlValue("select groupID from membership_groups where name='" . makeSafe($adminConfig['anonymousGroup']) . "'"); ?>"><?php echo $Translation['edit anonymous permissions'] ; ?></a></li>
180 </ul>
181 </li>
182
183 <li class="dropdown">
184 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="glyphicon glyphicon-user"></i> <?php echo $Translation['members'] ;?> <b class="caret"></b></a>
185 <ul class="dropdown-menu">
186 <li><a href="pageViewMembers.php"><?php echo $Translation['view members'] ; ?></a></li>
187 <li><a href="pageEditMember.php"><?php echo $Translation['add member'] ; ?></a></li>
188 <li class="divider"></li>
189 <li><a href="pageViewRecords.php"><?php echo $Translation["view members' records"]; ?> </a></li>
190 </ul>
191 </li>
192
193 <li class="dropdown">
194 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="glyphicon glyphicon-cog"></i> <?php echo $Translation["utilities"] ; ?> <b class="caret"></b></a>
195 <ul class="dropdown-menu">
196 <li><a href="pageSettings.php"><?php echo $Translation["admin settings"] ; ?></a></li>
197 <li class="divider"></li>
198 <li><a href="pageRebuildThumbnails.php"><?php echo $Translation["rebuild thumbnails"] ; ?></a></li>
199 <li><a href="pageRebuildFields.php"><?php echo $Translation['rebuild fields'] ; ?></a></li>
200 <li><a href="pageUploadCSV.php"><?php echo $Translation['import CSV'] ; ?></a></li>
201 <li><a href="pageTransferOwnership.php"><?php echo $Translation['batch transfer'] ; ?></a></li>
202 <li><a href="pageMail.php?sendToAll=1"><?php echo $Translation['mail all users'] ; ?></a></li>
203 <li class="divider"></li>
204 <li><a href="http://forums.appgini.com" target="_blank"><i class="glyphicon glyphicon-new-window"></i> <?php echo $Translation['AppGini forum']; ?></a></li>
205 </ul>
206 </li>
207
208 <?php $plugins = get_plugins(); ?>
209
210 <?php if(count($plugins)){ ?>
211 <li class="dropdown">
212 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="glyphicon glyphicon-plus"></i> <?php echo $Translation["plugins"] ; ?> <b class="caret"></b></a>
213 <ul class="dropdown-menu">
214 <?php foreach($plugins as $plugin){ ?>
215 <?php
216 $plugin_icon = '';
217 if($plugin['glyphicon']) $plugin_icon = "<i class=\"glyphicon glyphicon-{$plugin['glyphicon']}\"></i> ";
218 if($plugin['icon']) $plugin_icon = "<img src=\"{$plugin['admin_path']}/{$plugin['icon']}\"> ";
219 ?>
220 <li><a target="_blank" href="<?php echo $plugin['admin_path']; ?>"><?php echo $plugin_icon . $plugin['title']; ?></a></li>
221 <?php } ?>
222 </ul>
223 </li>
224 <?php } ?>
225 </ul>
226
227 <div class="navbar-right">
228 <a href="<?php echo PREPEND_PATH; ?>index.php" class="btn btn-success navbar-btn"><?php echo $Translation["user's area"] ; ?></a>
229 <a href="<?php echo PREPEND_PATH; ?>index.php?signOut=1" class="btn btn-warning navbar-btn"><i class="glyphicon glyphicon-log-out"></i> <?php echo $Translation["sign out"] ; ?></a>
230 </div>
231 </div>
232 </nav>
233 <script>
234 /* periodically check if user is still signed in */
235 setInterval(function(){
236 $j.ajax({
237 url: '<?php echo PREPEND_PATH; ?>ajax_check_login.php',
238 success: function(username){
239 if(!username.length) window.location = '<?php echo PREPEND_PATH; ?>index.php?signIn=1';
240 }
241 });
242 }, 60000);
243 </script>
244
245 <?php echo handle_maintenance(true); ?>
246 <div style="height: 80px;"></div>
247
248 <?php echo Notification::placeholder(); ?>
249
250 <!-- tool tips support -->
251 <div id="TipLayer" style="visibility:hidden;position:absolute;z-index:1000;top:-100"></div>
252 <script src="toolTipData.js"></script>
253 <!-- /tool tips support -->
254
255 <?php
256 if(!strstr($_SERVER['PHP_SELF'], 'pageSettings.php') && $adminConfig['adminPassword'] == md5('admin')){
257 $noSignup=TRUE;
258 ?>
259 <div class="alert alert-danger">
260 <p><strong><?php echo $Translation["attention"] ; ?></strong></p>
261 <p><?php if($adminConfig['adminUsername'] == 'admin'){
262 echo $Translation['security risk admin'];
263 }else{
264 echo $Translation['security risk'];
265 } ?></p>
266 </div>
267 <?php } ?>